package com.example.constellation.utils;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;

public class LoadDataAsyncTask extends AsyncTask<String,Void,String> {
    Context context;
    OnGetNetDataListener listener;
    ProgressDialog dialog;
    boolean isShowDialog=false;

    private void initDialog()
    {
        dialog=new ProgressDialog(context);
        dialog.setTitle("提示信息");
        dialog.setMessage("正在加载中。。。。。");
    }
    public LoadDataAsyncTask(Context context,OnGetNetDataListener listener,boolean isShowDialog)
    {
        this.isShowDialog=isShowDialog;
        this.context=context;
        this.listener=listener;
        initDialog();
    }





    //通过构造方法

    //回调接口

    public  interface OnGetNetDataListener{
        public void onSuccess(String json);
    }



    //运行在主线程当中 通常在此方法中 进行控件的初始化操作
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        if(isShowDialog)
        {
            dialog.show();
        }
    }


    //运行在主线程 可以在此处得到doInbackground返回的数据，在此处通常进行空间的更新
    @Override
    protected void onPostExecute(String s) {

        super.onPostExecute(s);
        if(isShowDialog){
            dialog.dismiss();
        }
        listener.onSuccess(s);
    }


    //运行在子线程当中 可以在此处进行耗时间操作等逻辑（比如网络请求）
    @Override
    protected String doInBackground(String... strings) {
        String json = HttpUtils.getJSONFromNet(strings[0]);
        return json;
    }
}
